﻿package com.notifications
{
	import flash.events.Event;
	
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// CLASSE UTILISÉE POUR DIFFUSER UN ÉVÉNEMENT PERSONNALISÉ RELATIF AU CHARGEMENT D'UNE IMAGE
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	public class XmlEvent extends Event
	{
		// constantes pour déterminer le type du XmlEvent :
		// on suit la méthode d'adobe pour le nommage
		// exemple : 'MY_EVENT_TYPE' ---> 'myEventType'
		public static const XML_LOADED : String = "xmlLoaded";
		public static const XML_FAILED : String = "xmlFailed";
		
		private var _data 				: XML;
		
		// constructeur : on y ajoute le paramètre qui permet de transporter le XML directement dans l'Event
		function XmlEvent( 	type 		: String,
						  	bubbles 	: Boolean 	= false,
							cancelable 	: Boolean 	= false,
							pData		: XML = null ) : void
		{
			// initialisation du constructeur de la classe Event (obligatoire)
			super( type, bubbles, cancelable );
			// on stocke le XML pour pouvoir le transporter directement dans l'Event
			dataXml = pData;
		}
		
		// la méthode clone doit être surchargée (obligatoire)
		public override function clone () : Event
		{
			return new XmlEvent ( type, bubbles, cancelable, dataXml )
		}
		
		// la méthode toString doit être surchargée (obligatoire)
		public override function toString ():String
		{
			return '[XmlEvent]';
		}
		
		// méthode GETTER & SETTER pour le pouvoir transporter le XML directement dans l'Event		
		public function set dataXml ( pXml : XML ) : void
		{
			_data = pXml;
		}
		public function get dataXml ( ) : XML
		{
			return _data;
		}
	}
}